package com.bdqn;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.Iterator;

/**
 * 使用DOM4J操作XML
 *
 * @author LILIBO
 * @since 2021-09-29
 */
public class SL06 {

    public static void main(String[] args) {
        Document doc = null;
        try {
            // 加载DOM树
            SAXReader saxReader = new SAXReader();
            doc = saxReader.read(new File("CH02/src/手机收藏信息.xml"));
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        // 获取XML的根节点
        Element root = doc.getRootElement();

        // 使用迭代器遍历所有节点
        for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
            // 使用迭代器获取集合中的下一个元素
            Element element = (Element) iterator.next();
            // 获取第一层级的属性
            String name = element.attributeValue("name");
            System.out.println("品牌：" + name);

            for (Iterator childIterator = element.elementIterator(); childIterator.hasNext();) {
                // 使用迭代器获取集合中的下一个元素
                Element childElement = (Element) childIterator.next();
                // 获取子级的属性
                String type = childElement.attributeValue("name");
                if (type != null) {
                    System.out.println("\t型号：" + type);
                }
                String color = childElement.attributeValue("color");
                if (color != null) {
                    System.out.println("\t颜色：" + color);
                }
            }
        }
    }
}
